1. Field of the Invention
This invention relates to distributed computer systems.
2. Related Art
In certain fields of technology, complete computer systems, including a diversity of equipment, are optimized for storing and retrieving data. Such systems may provide services to user machines related to a local network, e.g., an Intranet, or to a global network, e.g., the Web network.
It is desirable that network users can access, upon a query, a large number of data, making it possible for the network users to create their own dynamic web site or to consult a dynamic web site, for example an e-commerce site on a multi platform computer system (e.g., Solaris, Windows NT). These queries are directed to a directory, e.g., a Lightweight Directory Access Protocol (LDAP) directory, and managed by a directory server. It is further desirable that this access to a large number of data be made possible more rapidly for each query arriving after a first query.
Queries can be more efficiently handled through the use of indexes that are maintained by the directory. However, some attributes cannot be indexed. In particular, virtual attributes do not support indexing. Virtual attributes are attributes that are not stored in the entry itself but are computed according to a condition derived from data stored elsewhere in the directory.
Virtual attributes are not indexed using existing indexing methods, because updating indexes based on such attributes can degrade performance. Indeed, a change made on the definition of a virtual attribute requires the regeneration of the entire virtual attribute index, which is costly.
More generally, an LDAP directory server does not support LDAP queries that contain a filter that references virtual attributes. A search filter based on a virtual attribute may return erroneous results when executed. Only attributes stored in entries (or real attributes) are efficiently supported in LDAP search filters. To search entries based on the values of a virtual attribute, a directory client must retrieve a set of the entries, such as an entire branch, and sort through them to select the entries of interest.
A general aim of the present invention is to provide advances in these directions.